package com.chinda.common.page;

import lombok.Getter;
import lombok.Setter;
import org.springframework.data.domain.Page;

import java.io.Serializable;
import java.util.List;

/**
 * 分页
 *
 * @author Wang Chinda
 * @date 2020/8/8
 * @see
 * @since 1.0
 */
@Getter
@Setter
public class RPage<T> implements Serializable {
    private static final long serialVersionUID = -1901212308991157841L;
    /** 总记录数 */
    private int totalCount;
    /** 每页记录数 */
    private int pageSize;
    /** 总页数 */
    private int totalPage;
    /** 当前页数 */
    private int currPage;
    /** 列表数据 */
    private List<?> list;

    /**
     * 分页
     * @param list        列表数据
     * @param totalCount  总记录数
     * @param pageSize    每页记录数
     * @param currPage    当前页数
     */
    public RPage(List<?> list, int totalCount, int pageSize, int currPage) {
        this.list = list;
        this.totalCount = totalCount;
        this.pageSize = pageSize;
        this.currPage = currPage;
        this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
    }


    public RPage(Page<T> page) {
        this.list = page.getContent();
        this.totalCount = (int)page.getTotalElements();
        this.pageSize = page.getPageable().getPageSize();
        this.currPage = page.getPageable().getPageNumber() + 1;
        this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
    }
}
